在程式執行的過程中,有時候會重複執行一些相同的運算,這時可以使用「迴圈」來處理這些重複且相同的程式碼,大幅增加程式的可閱讀性以及撰寫程式的效率,本篇教學會介紹 for 迴圈與 while 迴圈,以及 break 中斷命令與 continue 跳過命令。
原文參考:重複迴圈 ( for、while )
本篇使用的 Python 版本為 3.7.12,所有範例可使用 Google Colab 實作,不用安裝任何軟體 ( 參考:使用 Google Colab )
「for 迴圈」的使用的方法為「for 變數 in 可迭代的物件:
」,執行之後,for 迴圈會依序將可以迭代的物件取出,賦值給指定的變數 ( 可迭代的物件像是字串、串列、字典、集合...等 )。
for 迴圈內容執行的程式區塊,採用縮排的方式 ( 參考:縮排 )。
for i in 'abc':
print(i) # a b c ( 字串 )
for i in ['a','b','c']:
print(i) # a b c ( 串列 )
for i in {'a','b','c'}:
print(i) # c b a ( 集合 )
for i in {'a':1,'b':2,'c':3}:
print(i) # a b c ( 字典 )
如果將 for 迴圈放在 for 迴圈裡,就會形成「巢狀迴圈」,巢狀迴圈會先從「最內層」的迴圈開始執行,執行完畢後再執行外層的迴圈,下方的程式碼,會先印出 b 的 1、2、3,印完後印出第一個 a 的 x,接著再次印出 b,依此類推。
for a in ['x','y','z']:
for b in [1,2,3]:
print(b)
print(a)
# 1 2 3 x 1 2 3 y 1 2 3 z
如果搭配文字的格式化 ( 參考:文字格式化 format ),就能利用巢狀迴圈做出有趣的效果,下方的程式碼,會將 x、y、z 結合 1、2、3。
for a in ['x','y','z']:
for b in [1,2,3]:
print(f'{a}{b}')
# x1 x2 x3 y1 y2 y3 z1 z2 z3
「while 迴圈」是「根據條件判斷,決定是否重複或停止」的迴圈,用法為「while 條件:
」,如果條件判斷為 True,就會不斷執行迴圈內容,如果判斷為 False,就會停止迴圈,下方的程式執行後,會不斷將 a 增加 1,直到 a 等於 6 為止。
while 迴圈內容執行的程式區塊,採用縮排的方式 ( 參考:縮排 )。
a = 1
while a<=5:
print(a)
a += 1
# 1 2 3 4 5
在操作迴圈的過程中,可以使用「break 中斷」和「continue 跳出」兩個方法來「停止迴圈」,通常 break 和 continue 會搭配邏輯判斷一同使用。( 參考:邏輯判斷 ( if、elif、else ) )
break 和 continue 的差別在於 break 會將整個迴圈停止,而 continue 是將迴圈目前執行的程式停止,然後再次執行迴圈,下圖為兩者的執行差異。
下方的程式可以看出,因為內層迴圈使用了 break,碰到 b 為 1 的時候就會停止,就看不見 2 和 3。
for a in ['x','y','z']:
for b in [1,2,3]:
if(b==2):
break
print(f'{a}{b}')
print('ok')
# x1 y1 z1 ok
如果使用 continue,則會略過 b 為 2 的部分,直接跳到 b 為 3 的部分。
for a in ['x','y','z']:
for b in [1,2,3]:
if(b==2):
continue
print(f'{a}{b}')
print('ok')
# x1 x3 y1 y3 z1 z3 ok
大家好,我是 OXXO,是個即將邁入中年的斜槓青年,我有個超過一千篇教學的 STEAM 教育學習網,有興趣可以參考下方連結呦~ ^_^